package com.tarena.lbs.content.service;

import com.tarena.lbs.base.protocol.pager.PageResult;
import com.tarena.lbs.content.pojo.param.ArticleContentParam;
import com.tarena.lbs.content.pojo.query.ArticleQuery;
import com.tarena.lbs.content.pojo.vo.ArticleVO;

import java.util.Set;

public interface ArticleService {


    PageResult<ArticleVO> pageList(ArticleQuery articleQuery);
    
    /**
     * 推文创作页面文章列表查询
     * @param articleQuery 查询参数
     * @return 文章分页结果
     */
    PageResult<ArticleVO> twitterPageList(ArticleQuery articleQuery);

    void addArticle(ArticleContentParam param);
    
    /**
     * 更新文章状态
     * @param id 文章ID
     * @param status 状态值 (1:待发布, 2:已发布(上线), 3:下线)
     */
    void updateStatus(Integer id, Integer status);
    
    /**
     * 删除文章
     * @param id 文章ID
     */
    void deleteArticle(Integer id);
    
    /**
     * 获取所有文章标签
     * @return 文章标签集合
     */
    Set<String> getAllArticleLabels();

    /**
     * 根据ID获取文章详情
     * @param id 文章ID
     * @return 文章详情
     */
    ArticleVO getArticleById(Integer id);
}